﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using com.clinica.business.BE.actplansalud;
using com.clinica.business.BE.comun;
using LiclUtil;
using LiclActPlanSalud.Views;
using System.Text;


namespace wesiGestClinica.actplansalud
{
    public partial class FormsDatPlanSalud : Shared.SMGPaseBase, ILiclManSolicitudPlanSalud
    {
        private LiclManSolicitudPlanSaludPresenter oPresenter = new LiclManSolicitudPlanSaludPresenter();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                oPresenter.View = this;
                this.Master.TituloModulo = "Consulta de Plan de Salud";
                IniciarControles();
                CargarUrl();
                //EstablecerModos(0);
            }
            VerificarItemGrilla();
            Master.OcultarMensaje();
            oPresenter.View = this;
        }
        protected override void DefineHandlers()
        {
            UCBarra1.img_Volver.Click += new ImageClickEventHandler(img_Volver_Click);
            UCBarra1.img_Volver.Visible = true;
        }
        void img_Volver_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("FormsConPlanSalud.aspx");   
        }
        #region Metodos
        private string DarFormato(decimal decValor)
        {
            string strValor = "0.00";
            #region Formatear
            if(decValor >0)
                strValor = decValor.ToString("#####.##");

            #endregion
            return strValor.Trim();
        }
        private void VerificarItemGrilla()
        {
            if (dg_PlanSaludDetalle.Rows[0].Cells[0].Text == "0")
                dg_PlanSaludDetalle.Enabled = false;
            else
                dg_PlanSaludDetalle.Enabled = true;
        }

        private void IniciarControles()
        {
            DateTime fecha = new DateTime();
            fecha = DateTime.Today.ToUniversalTime();
            txt_Fecha.Text = fecha.ToString("dd/MM/yyyy");
            txt_Estado.Text = string.Empty;
            txt_Descripcion.Text = string.Empty;
            txt_Factor.Text = "0.00";
            txt_Numero.Text = "0";
            txt_Observaciones.Text = string.Empty;
            List<PlanSaludBE> lst = new List<PlanSaludBE>();
            lst.Add(new PlanSaludBE());
            dg_PlanSaludDetalle.DataSource = lst;
            dg_PlanSaludDetalle.DataBind();

        }
        private void CargarUrl()
        {
            string action = string.Empty;
            string TipoSol = string.Empty;
            string Num = string.Empty;

            try
            {
                action = Request.QueryString["action"].ToString().Trim();
                TipoSol = Request.QueryString["TipoSol"].ToString().Trim();
                Num = Request.QueryString["Num"].ToString().Trim();
            }
            catch (Exception)
            {


            }
            switch (action)
            {
                case "1":
                    Session.Add("Action", "update");
                    EstablecerModos(2);
                    PlanSaludBE oPla = new PlanSaludBE();
                    oPla.NumeroSolicitud = int.Parse(Num);
                    //oPla.TipoSolicitud = int.Parse(TipoSol);
                    oPresenter.onCargar_SolicitudesPlanSalud(oPla);
                    EstablecerModos(2);
                    break;
                case "2":
                    Session.Add("Action", "update");
                    EstablecerModos(2);
                    PlanSaludBE oPla1 = new PlanSaludBE();
                    oPla1.NumeroSolicitud = int.Parse(Num);
                    //oPla1.TipoSolicitud = int.Parse(TipoSol);
                    oPresenter.onCargar_SolicitudesPlanSalud(oPla1);
                    EstablecerModos(2);
                    break;
                case "3":
                    Session.Add("Action", "update");
                    EstablecerModos(2);
                    PlanSaludBE oPla2 = new PlanSaludBE();
                    oPla2.NumeroSolicitud = int.Parse(Num);
                    //oPla2.TipoSolicitud = int.Parse(TipoSol);
                    oPresenter.onCargar_SolicitudesPlanSalud(oPla2);
                    EstablecerModos(2);
                    break;
                default:
                    break;
            }
        }
        private void EstablecerModos(int action)
        {
            switch (action)
            {
                case 1:
                    #region Nuevo
                    txt_Observaciones.Enabled =
                    txt_Descripcion.Enabled =
                    txt_Factor.Enabled = true;

                    txt_Estado.Enabled =
                    txt_Numero.Enabled =
                    txt_Fecha.Enabled = false;
                    #endregion
                    break;
                case 2:
                    #region Editar
                    txt_Observaciones.Enabled =
                     txt_Descripcion.Enabled =
                     txt_Factor.Enabled = true;

                    txt_Estado.Enabled =
                    txt_Numero.Enabled =
                    txt_Fecha.Enabled = false;
                    #endregion
                    break;

                default:
                    break;
            }
        }
        #endregion
        #region ILiclManSolicitudPlanSalud Members

        public void MostrarMensajeError(string Mensaje)
        {
            Master.MostrarMensaje(Mensaje.Trim(), TipoMensaje.Error);
        }

        public void ObtenerTabla(List<ParametrosBE> lst)
        {

        }

        public void ObtenerSolicitudPlanSalud(List<PlanSaludBE> lst)
        {
            if (lst.Count > 0)
            {
                foreach (PlanSaludBE item in lst)
                {
                    item.PrecioVista = DarFormato(item.Precio);
                    item.ValorCalculoVista = DarFormato(item.ValorCalculo);
                    item.PorcentajeDescuentoVista = DarFormato(item.PorcentajeDescuento);
                }
                dg_PlanSaludDetalle.DataSource = lst;
                dg_PlanSaludDetalle.DataBind();

                txt_Estado.Text = lst[0].Estado;
                txt_Numero.Text = Request.QueryString["Num"].ToString().Trim();
                txt_Fecha.Text = lst[0].Fecha.ToString("dd/MM/yyyy");
                txt_Observaciones.Text = lst[0].Observaciones;
                txt_Factor.Text = lst[0].Factor.ToString();
                txt_Descripcion.Text = lst[0].Descripcion.Trim();
                txt_CodCiaSeguros.Text = lst[0].CodigoAseguradora.ToString();
                txt_CiaSeguros.Text = lst[0].DescripcionAseguradora;
                txt_CodEmpresa.Text = lst[0].CodigoEmpresa.ToString();
                txt_Empresa.Text = lst[0].RazonSocial;
            }
        }

        public void MantenimientoSolicitudPlanSalud(int NunSol)
        {

        }

        public void AprobarSolicitudPlanSalud(int NunSol)
        {

        }

        #endregion
    }
}
